package trab.cg.phong.gui;

import java.awt.Dimension;
import java.awt.image.BufferedImage;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.UIManager;
import trab.cg.phong.renderizador.Ambiente;
import trab.cg.phong.renderizador.Camera;
import trab.cg.phong.renderizador.Iluminacao;
import trab.cg.phong.renderizador.Renderizador;
import trab.cg.phong.renderizador.Superficie;


/**
 *
 * @author Deivide e Renan
 */
public class Gui extends javax.swing.JFrame {
    
    public Gui() {
        initComponents();
    }
    
    /**
     * Método responsável por obter os valores da superfície da interface
     * e salvá-los no objeto superfície.
     * @param superficie @see Superficie.java
     */
    private void setaValoresSuperficie(Superficie superficie)
    {
        superficie.setA((Double)this.jsSuperficieA.getValue());
        superficie.setB((Double)this.jsSuperficieB.getValue());
        superficie.setC((Double)this.jsSuperficieC.getValue());
        superficie.setD((Double)this.jsSuperficieD.getValue());
        superficie.setE((Double)this.jsSuperficieE.getValue());
        superficie.setF((Double)this.jsSuperficieF.getValue());
        superficie.setG((Double)this.jsSuperficieG.getValue());
        superficie.setH((Double)this.jsSuperficieH.getValue());
        superficie.setJ((Double)this.jsSuperficieJ.getValue());
        superficie.setK((Double)this.jsSuperficieK.getValue());
    }
    
    /**
     * Método responsável por obter os valores da câmera da interface
     * e salvá-los no objeto camera.
     * @param camera @see Camera.java
     */
    private void setaValoresCamera(Camera camera)
    {
        // Seta os valores da dimensão(largura, altura) da câmera.
        camera.setAltura((Integer)this.jsAltura.getValue());
        camera.setLargura((Integer)this.jsLargura.getValue());
        
        // Seta o valor da distância focal.
        camera.setDistanciaFocal((Double)this.jsFoco.getValue());
        
        // Seta os valores da rotação da câmera em x,y,z.
        camera.setRotacaoX((Double)this.jsRotacaoX.getValue());
        camera.setRotacaoY((Double)this.jsRotacaoY.getValue());
        camera.setRotacaoZ((Double)this.jsRotacaoZ.getValue());
        
        // Seta os valores do pixel x e do pixel y.
        camera.setPixelX((Double)this.jsPixelX.getValue());
        camera.setPixelY((Double)this.jsPixelY.getValue());
        
        // Seta os valores da posição da câmera em x,y,z.
        camera.setPosicaoX((Double)this.jsPosicaoCameraX.getValue());
        camera.setPosicaoY((Double)this.jsPosicaoCameraY.getValue());
        camera.setPosicaoZ((Double)this.jsPosicaoCameraZ.getValue());
    }
    
    /**
     * Método responsável por obter os valores da iluminacao da interface
     * e salvá-los no objeto iluminacao.
     * @param iluminacao @see Iluminacao.java
     */
    private void setaValoresIluminacao(Iluminacao iluminacao)
    {
        //Seta a difusão
        iluminacao.setDifusaoR((Double)this.jsDifusaoRed.getValue());
        iluminacao.setDifusaoG((Double)this.jsDifusaoGreen.getValue());
        iluminacao.setDifusaoB((Double)this.jsDifusaoBlue.getValue());
        
        //Seta o especular
        iluminacao.setEspecularR((Double)this.jsEspecularRed.getValue());
        iluminacao.setEspecularG((Double)this.jsEspecularGreen.getValue());
        iluminacao.setEspecularB((Double)this.jsEspecularBlue.getValue());
        
        //Seta a iluminacao
        iluminacao.setAmbienteR((Double)this.jsAmbienteRed.getValue());
        iluminacao.setAmbienteG((Double)this.jsAmbienteGreen.getValue());
        iluminacao.setAmbienteB((Double)this.jsAmbienteBlue.getValue());
        
        //Seta o expoente especular
        iluminacao.setExpoenteEspecular((Double)this.jsIluminacaoN.getValue());
        
        //Seta a posicao da iluminação
        iluminacao.setPosicaoX((Double)this.jsPosicaoLuzX.getValue());
        iluminacao.setPosicaoY((Double)this.jsPosicaoLuzY.getValue());
        iluminacao.setPosicaoZ((Double)this.jsPosicaoLuzZ.getValue());
        
        //Seta a cor da luz
        iluminacao.setCorLuzR((Double)this.jsLuzCorR.getValue());
        iluminacao.setCorLuzG((Double)this.jsLuzCorG.getValue());
        iluminacao.setCorLuzB((Double)this.jsLuzCorB.getValue());
    }
    
    /**
     * Método responsável por obter os valores do Ambiente da interface
     * e salvá-los no objeto ambiente.
     * @param ambiente @see Ambiente.java
     */
    private void setaValoresAmbiente(Ambiente ambiente)
    {
        //a a cor da luz
        ambiente.setR((Double)this.jsAmbienteCorRed.getValue());
        ambiente.setG((Double)this.jsAmbienteCorGreen.getValue());
        ambiente.setB((Double)this.jsAmbienteCorBlue.getValue());
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jpSuperficie = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jLabel10 = new javax.swing.JLabel();
        jLabel11 = new javax.swing.JLabel();
        jsSuperficieA = new javax.swing.JSpinner();
        jsSuperficieB = new javax.swing.JSpinner();
        jsSuperficieC = new javax.swing.JSpinner();
        jsSuperficieD = new javax.swing.JSpinner();
        jsSuperficieE = new javax.swing.JSpinner();
        jsSuperficieF = new javax.swing.JSpinner();
        jsSuperficieG = new javax.swing.JSpinner();
        jsSuperficieH = new javax.swing.JSpinner();
        jsSuperficieJ = new javax.swing.JSpinner();
        jsSuperficieK = new javax.swing.JSpinner();
        jpCamera = new javax.swing.JPanel();
        jpPosicaoCamera = new javax.swing.JPanel();
        jLabel21 = new javax.swing.JLabel();
        jsPosicaoCameraX = new javax.swing.JSpinner();
        jLabel22 = new javax.swing.JLabel();
        jsPosicaoCameraY = new javax.swing.JSpinner();
        jLabel23 = new javax.swing.JLabel();
        jsPosicaoCameraZ = new javax.swing.JSpinner();
        jpRotacao = new javax.swing.JPanel();
        jLabel24 = new javax.swing.JLabel();
        jsRotacaoX = new javax.swing.JSpinner();
        jLabel25 = new javax.swing.JLabel();
        jsRotacaoY = new javax.swing.JSpinner();
        jLabel26 = new javax.swing.JLabel();
        jsRotacaoZ = new javax.swing.JSpinner();
        jpTamanho = new javax.swing.JPanel();
        jLabel27 = new javax.swing.JLabel();
        jLabel28 = new javax.swing.JLabel();
        jLabel29 = new javax.swing.JLabel();
        jLabel39 = new javax.swing.JLabel();
        jLabel40 = new javax.swing.JLabel();
        jsFoco = new javax.swing.JSpinner();
        jsLargura = new javax.swing.JSpinner();
        jsAltura = new javax.swing.JSpinner();
        jsPixelX = new javax.swing.JSpinner();
        jsPixelY = new javax.swing.JSpinner();
        jpIluminacao = new javax.swing.JPanel();
        jpAmbiente = new javax.swing.JPanel();
        jpCorAmbiente = new javax.swing.JPanel();
        jLabel30 = new javax.swing.JLabel();
        jLabel31 = new javax.swing.JLabel();
        jLabel32 = new javax.swing.JLabel();
        jsAmbienteCorRed = new javax.swing.JSpinner();
        jsAmbienteCorGreen = new javax.swing.JSpinner();
        jsAmbienteCorBlue = new javax.swing.JSpinner();
        jpLuz = new javax.swing.JPanel();
        jsAmbienteCorB = new javax.swing.JPanel();
        jLabel33 = new javax.swing.JLabel();
        jLabel34 = new javax.swing.JLabel();
        jLabel35 = new javax.swing.JLabel();
        jsLuzCorR = new javax.swing.JSpinner();
        jsLuzCorG = new javax.swing.JSpinner();
        jsLuzCorB = new javax.swing.JSpinner();
        jpPosicaoLuz = new javax.swing.JPanel();
        jLabel36 = new javax.swing.JLabel();
        jLabel37 = new javax.swing.JLabel();
        jLabel38 = new javax.swing.JLabel();
        jsPosicaoLuzX = new javax.swing.JSpinner();
        jsPosicaoLuzY = new javax.swing.JSpinner();
        jsPosicaoLuzZ = new javax.swing.JSpinner();
        jpCoeficienteReflexao = new javax.swing.JPanel();
        jpRed = new javax.swing.JPanel();
        jLabel12 = new javax.swing.JLabel();
        jsDifusaoRed = new javax.swing.JSpinner();
        jLabel9 = new javax.swing.JLabel();
        jsDifusaoGreen = new javax.swing.JSpinner();
        jLabel13 = new javax.swing.JLabel();
        jsDifusaoBlue = new javax.swing.JSpinner();
        jpGreen = new javax.swing.JPanel();
        jLabel14 = new javax.swing.JLabel();
        jsEspecularRed = new javax.swing.JSpinner();
        jLabel15 = new javax.swing.JLabel();
        jsEspecularGreen = new javax.swing.JSpinner();
        jLabel16 = new javax.swing.JLabel();
        jsEspecularBlue = new javax.swing.JSpinner();
        jpBlue = new javax.swing.JPanel();
        jLabel17 = new javax.swing.JLabel();
        jsAmbienteRed = new javax.swing.JSpinner();
        jLabel18 = new javax.swing.JLabel();
        jsAmbienteGreen = new javax.swing.JSpinner();
        jLabel19 = new javax.swing.JLabel();
        jsAmbienteBlue = new javax.swing.JSpinner();
        jLabel20 = new javax.swing.JLabel();
        jsIluminacaoN = new javax.swing.JSpinner();
        btnVai = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Renderizador");

        jpSuperficie.setBorder(javax.swing.BorderFactory.createTitledBorder("Superfície"));

        jLabel1.setText("A:");

        jLabel2.setText("B:");

        jLabel3.setText("C:");

        jLabel4.setText("D:");

        jLabel5.setText("E:");

        jLabel6.setText("F:");

        jLabel7.setText("G:");

        jLabel8.setText("H:");

        jLabel10.setText("J:");

        jLabel11.setText("K:");

        jsSuperficieA.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieB.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieC.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieD.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieE.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieF.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieG.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieH.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieJ.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsSuperficieK.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(-1.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpSuperficieLayout = new javax.swing.GroupLayout(jpSuperficie);
        jpSuperficie.setLayout(jpSuperficieLayout);
        jpSuperficieLayout.setHorizontalGroup(
            jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpSuperficieLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(jLabel1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jsSuperficieA, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addComponent(jLabel3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jsSuperficieB, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jsSuperficieC)))
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addComponent(jLabel7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jsSuperficieG))
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addComponent(jLabel8)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jsSuperficieJ, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jsSuperficieH)
                            .addComponent(jsSuperficieK, javax.swing.GroupLayout.Alignment.TRAILING)))
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addComponent(jLabel4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jsSuperficieE, javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jsSuperficieD)
                            .addComponent(jsSuperficieF, javax.swing.GroupLayout.Alignment.TRAILING)))
                    .addGroup(jpSuperficieLayout.createSequentialGroup()
                        .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel6)
                            .addComponent(jLabel5)
                            .addComponent(jLabel11)
                            .addComponent(jLabel10)
                            .addComponent(jLabel2))
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jpSuperficieLayout.setVerticalGroup(
            jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpSuperficieLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(jsSuperficieA, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(jsSuperficieB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(jsSuperficieC, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(jsSuperficieD, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(jsSuperficieE, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(jsSuperficieF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(jsSuperficieG, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel8)
                    .addComponent(jsSuperficieH, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel10)
                    .addComponent(jsSuperficieJ, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jpSuperficieLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel11)
                    .addComponent(jsSuperficieK, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpCamera.setBorder(javax.swing.BorderFactory.createTitledBorder("Câmera"));

        jpPosicaoCamera.setBorder(javax.swing.BorderFactory.createTitledBorder("Posição"));

        jLabel21.setText("X:");

        jsPosicaoCameraX.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jLabel22.setText("Y:");

        jsPosicaoCameraY.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jLabel23.setText("Z:");

        jsPosicaoCameraZ.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(-10.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpPosicaoCameraLayout = new javax.swing.GroupLayout(jpPosicaoCamera);
        jpPosicaoCamera.setLayout(jpPosicaoCameraLayout);
        jpPosicaoCameraLayout.setHorizontalGroup(
            jpPosicaoCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpPosicaoCameraLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel21)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoCameraX, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel22)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoCameraY, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel23)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoCameraZ, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpPosicaoCameraLayout.setVerticalGroup(
            jpPosicaoCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpPosicaoCameraLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpPosicaoCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel21)
                    .addComponent(jsPosicaoCameraX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel22)
                    .addComponent(jsPosicaoCameraY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel23)
                    .addComponent(jsPosicaoCameraZ, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpRotacao.setBorder(javax.swing.BorderFactory.createTitledBorder("Rotação"));

        jLabel24.setText("X:");

        jsRotacaoX.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jLabel25.setText("Y:");

        jsRotacaoY.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jLabel26.setText("Z:");

        jsRotacaoZ.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpRotacaoLayout = new javax.swing.GroupLayout(jpRotacao);
        jpRotacao.setLayout(jpRotacaoLayout);
        jpRotacaoLayout.setHorizontalGroup(
            jpRotacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRotacaoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel24)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsRotacaoX, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel25)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsRotacaoY, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel26)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsRotacaoZ, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(26, Short.MAX_VALUE))
        );
        jpRotacaoLayout.setVerticalGroup(
            jpRotacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRotacaoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpRotacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel24)
                    .addComponent(jsRotacaoX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel25)
                    .addComponent(jsRotacaoY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel26)
                    .addComponent(jsRotacaoZ, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpTamanho.setBorder(javax.swing.BorderFactory.createTitledBorder("Tamanho"));

        jLabel27.setText("Largura:");

        jLabel28.setText("Altura:");

        jLabel29.setText("Foco:");

        jLabel39.setText("Pixel X:");

        jLabel40.setText("Pixel Y:");

        jsFoco.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(800.0d), null, null, Double.valueOf(1.0d)));

        jsLargura.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(800), null, null, Integer.valueOf(1)));

        jsAltura.setModel(new javax.swing.SpinnerNumberModel(Integer.valueOf(600), null, null, Integer.valueOf(1)));

        jsPixelX.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jsPixelY.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpTamanhoLayout = new javax.swing.GroupLayout(jpTamanho);
        jpTamanho.setLayout(jpTamanhoLayout);
        jpTamanhoLayout.setHorizontalGroup(
            jpTamanhoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpTamanhoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel27)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsLargura, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel28)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAltura, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel29)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsFoco, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel39)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPixelX, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel40)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPixelY, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpTamanhoLayout.setVerticalGroup(
            jpTamanhoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpTamanhoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpTamanhoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel27)
                    .addComponent(jLabel28)
                    .addComponent(jLabel29)
                    .addComponent(jLabel39)
                    .addComponent(jLabel40)
                    .addComponent(jsFoco, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsLargura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsAltura, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsPixelX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsPixelY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jpCameraLayout = new javax.swing.GroupLayout(jpCamera);
        jpCamera.setLayout(jpCameraLayout);
        jpCameraLayout.setHorizontalGroup(
            jpCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCameraLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpPosicaoCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jpRotacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jpTamanho, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpCameraLayout.setVerticalGroup(
            jpCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCameraLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpCameraLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jpPosicaoCamera, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpRotacao, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpTamanho, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpIluminacao.setBorder(javax.swing.BorderFactory.createTitledBorder("Iluminação"));

        jpAmbiente.setBorder(javax.swing.BorderFactory.createTitledBorder("Ambiente"));

        jpCorAmbiente.setBorder(javax.swing.BorderFactory.createTitledBorder("Cor"));

        jLabel30.setText("R:");

        jLabel31.setText("G:");

        jLabel32.setText("B:");

        jsAmbienteCorRed.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsAmbienteCorGreen.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsAmbienteCorBlue.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpCorAmbienteLayout = new javax.swing.GroupLayout(jpCorAmbiente);
        jpCorAmbiente.setLayout(jpCorAmbienteLayout);
        jpCorAmbienteLayout.setHorizontalGroup(
            jpCorAmbienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCorAmbienteLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel30)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteCorRed, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel31)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteCorGreen, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel32)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteCorBlue, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpCorAmbienteLayout.setVerticalGroup(
            jpCorAmbienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCorAmbienteLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jpCorAmbienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel30)
                    .addComponent(jLabel31)
                    .addComponent(jLabel32)
                    .addComponent(jsAmbienteCorRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsAmbienteCorGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsAmbienteCorBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(34, 34, 34))
        );

        javax.swing.GroupLayout jpAmbienteLayout = new javax.swing.GroupLayout(jpAmbiente);
        jpAmbiente.setLayout(jpAmbienteLayout);
        jpAmbienteLayout.setHorizontalGroup(
            jpAmbienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAmbienteLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpCorAmbiente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpAmbienteLayout.setVerticalGroup(
            jpAmbienteLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpAmbienteLayout.createSequentialGroup()
                .addComponent(jpCorAmbiente, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpLuz.setBorder(javax.swing.BorderFactory.createTitledBorder("Luz"));

        jsAmbienteCorB.setBorder(javax.swing.BorderFactory.createTitledBorder("Cor"));

        jLabel33.setText("R:");

        jLabel34.setText("G:");

        jLabel35.setText("B:");

        jsLuzCorR.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsLuzCorG.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(78.0d), null, null, Double.valueOf(1.0d)));

        jsLuzCorB.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(152.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jsAmbienteCorBLayout = new javax.swing.GroupLayout(jsAmbienteCorB);
        jsAmbienteCorB.setLayout(jsAmbienteCorBLayout);
        jsAmbienteCorBLayout.setHorizontalGroup(
            jsAmbienteCorBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jsAmbienteCorBLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel33)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsLuzCorR, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel34)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsLuzCorG, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel35)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsLuzCorB, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jsAmbienteCorBLayout.setVerticalGroup(
            jsAmbienteCorBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jsAmbienteCorBLayout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jsAmbienteCorBLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel33)
                    .addComponent(jLabel34)
                    .addComponent(jLabel35)
                    .addComponent(jsLuzCorR, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsLuzCorG, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsLuzCorB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(34, 34, 34))
        );

        jpPosicaoLuz.setBorder(javax.swing.BorderFactory.createTitledBorder("Posição"));

        jLabel36.setText("X:");

        jLabel37.setText("Y:");

        jLabel38.setText("Z:");

        jsPosicaoLuzX.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsPosicaoLuzY.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(0.0d), null, null, Double.valueOf(1.0d)));

        jsPosicaoLuzZ.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(-5.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpPosicaoLuzLayout = new javax.swing.GroupLayout(jpPosicaoLuz);
        jpPosicaoLuz.setLayout(jpPosicaoLuzLayout);
        jpPosicaoLuzLayout.setHorizontalGroup(
            jpPosicaoLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpPosicaoLuzLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel36)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoLuzX, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(31, 31, 31)
                .addComponent(jLabel37)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoLuzY, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(31, 31, 31)
                .addComponent(jLabel38)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsPosicaoLuzZ, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(23, Short.MAX_VALUE))
        );
        jpPosicaoLuzLayout.setVerticalGroup(
            jpPosicaoLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpPosicaoLuzLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpPosicaoLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel36)
                    .addComponent(jLabel37)
                    .addComponent(jLabel38)
                    .addComponent(jsPosicaoLuzX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsPosicaoLuzY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jsPosicaoLuzZ, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(14, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jpLuzLayout = new javax.swing.GroupLayout(jpLuz);
        jpLuz.setLayout(jpLuzLayout);
        jpLuzLayout.setHorizontalGroup(
            jpLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpLuzLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jsAmbienteCorB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jpPosicaoLuz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpLuzLayout.setVerticalGroup(
            jpLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpLuzLayout.createSequentialGroup()
                .addGroup(jpLuzLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jsAmbienteCorB, javax.swing.GroupLayout.PREFERRED_SIZE, 72, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jpPosicaoLuz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 0, Short.MAX_VALUE))
        );

        jpCoeficienteReflexao.setBorder(javax.swing.BorderFactory.createTitledBorder("Coeficiente de Reflexão"));

        jpRed.setBorder(javax.swing.BorderFactory.createTitledBorder("Difusão"));

        jLabel12.setText("Red:");

        jsDifusaoRed.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel9.setText("Green:");

        jsDifusaoGreen.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel13.setText("Blue:");

        jsDifusaoBlue.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpRedLayout = new javax.swing.GroupLayout(jpRed);
        jpRed.setLayout(jpRedLayout);
        jpRedLayout.setHorizontalGroup(
            jpRedLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRedLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel12)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsDifusaoRed, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel9)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsDifusaoGreen, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel13)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsDifusaoBlue, javax.swing.GroupLayout.DEFAULT_SIZE, 42, Short.MAX_VALUE)
                .addContainerGap())
        );
        jpRedLayout.setVerticalGroup(
            jpRedLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpRedLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpRedLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel12)
                    .addComponent(jsDifusaoRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel9)
                    .addComponent(jsDifusaoGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel13)
                    .addComponent(jsDifusaoBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpGreen.setBorder(javax.swing.BorderFactory.createTitledBorder("Especular"));

        jLabel14.setText("Red:");

        jsEspecularRed.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel15.setText("Green:");

        jsEspecularGreen.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel16.setText("Blue:");

        jsEspecularBlue.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpGreenLayout = new javax.swing.GroupLayout(jpGreen);
        jpGreen.setLayout(jpGreenLayout);
        jpGreenLayout.setHorizontalGroup(
            jpGreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpGreenLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel14)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsEspecularRed, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel15)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsEspecularGreen, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel16)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsEspecularBlue, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpGreenLayout.setVerticalGroup(
            jpGreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpGreenLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpGreenLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel14)
                    .addComponent(jsEspecularRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel15)
                    .addComponent(jsEspecularGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel16)
                    .addComponent(jsEspecularBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jpBlue.setBorder(javax.swing.BorderFactory.createTitledBorder("Ambiente"));

        jLabel17.setText("Red:");

        jsAmbienteRed.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel18.setText("Green:");

        jsAmbienteGreen.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        jLabel19.setText("Blue");

        jsAmbienteBlue.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(1.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpBlueLayout = new javax.swing.GroupLayout(jpBlue);
        jpBlue.setLayout(jpBlueLayout);
        jpBlueLayout.setHorizontalGroup(
            jpBlueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpBlueLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel17)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteRed, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel18)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteGreen, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel19)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsAmbienteBlue, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jpBlueLayout.setVerticalGroup(
            jpBlueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpBlueLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpBlueLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel17)
                    .addComponent(jsAmbienteRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel18)
                    .addComponent(jsAmbienteGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19)
                    .addComponent(jsAmbienteBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel20.setText("N:");

        jsIluminacaoN.setModel(new javax.swing.SpinnerNumberModel(Double.valueOf(100.0d), null, null, Double.valueOf(1.0d)));

        javax.swing.GroupLayout jpCoeficienteReflexaoLayout = new javax.swing.GroupLayout(jpCoeficienteReflexao);
        jpCoeficienteReflexao.setLayout(jpCoeficienteReflexaoLayout);
        jpCoeficienteReflexaoLayout.setHorizontalGroup(
            jpCoeficienteReflexaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCoeficienteReflexaoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpRed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jpGreen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jpBlue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel20)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jsIluminacaoN, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(20, Short.MAX_VALUE))
        );
        jpCoeficienteReflexaoLayout.setVerticalGroup(
            jpCoeficienteReflexaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpCoeficienteReflexaoLayout.createSequentialGroup()
                .addGroup(jpCoeficienteReflexaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpCoeficienteReflexaoLayout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jpCoeficienteReflexaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jpRed, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jpGreen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jpBlue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                    .addGroup(jpCoeficienteReflexaoLayout.createSequentialGroup()
                        .addGap(40, 40, 40)
                        .addGroup(jpCoeficienteReflexaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel20)
                            .addComponent(jsIluminacaoN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        btnVai.setText("Renderizar");
        btnVai.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                eventVai(evt);
            }
        });

        javax.swing.GroupLayout jpIluminacaoLayout = new javax.swing.GroupLayout(jpIluminacao);
        jpIluminacao.setLayout(jpIluminacaoLayout);
        jpIluminacaoLayout.setHorizontalGroup(
            jpIluminacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpIluminacaoLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jpIluminacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jpIluminacaoLayout.createSequentialGroup()
                        .addComponent(jpAmbiente, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jpLuz, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jpCoeficienteReflexao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap())
            .addGroup(jpIluminacaoLayout.createSequentialGroup()
                .addComponent(btnVai)
                .addGap(0, 0, Short.MAX_VALUE))
        );
        jpIluminacaoLayout.setVerticalGroup(
            jpIluminacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jpIluminacaoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpCoeficienteReflexao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jpIluminacaoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jpAmbiente, javax.swing.GroupLayout.DEFAULT_SIZE, 0, Short.MAX_VALUE)
                    .addComponent(jpLuz, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 12, Short.MAX_VALUE)
                .addComponent(btnVai))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jpSuperficie, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jpCamera, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jpIluminacao, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jpCamera, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jpIluminacao, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jpSuperficie, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void eventVai(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_eventVai
        Ambiente ambiente = new Ambiente();
        Superficie superficie = new Superficie();
        Camera camera = new Camera();
        Iluminacao iluminacao = new Iluminacao();
        
        // Obtém os valores da interface gráfica.
        setaValoresAmbiente(ambiente);
        setaValoresSuperficie(superficie);
        setaValoresCamera(camera);
        setaValoresIluminacao(iluminacao);
        
        // Inicializa o renderizador com os dados da câmera, superfície e iluminação.
        Renderizador render = new Renderizador(camera, superficie, iluminacao, ambiente);
        BufferedImage imagem = render.renderizar();
        
        JDialog dialog = new JDialog();
        JLabel labelimg = new JLabel();
        labelimg.setIcon(new ImageIcon(imagem));
        dialog.setMinimumSize(new Dimension(imagem.getWidth(), imagem.getHeight()));
        dialog.getContentPane().add(labelimg, java.awt.BorderLayout.CENTER);
        
        dialog.setVisible(true);
    }//GEN-LAST:event_eventVai

    public static void main(String args[]) {

        try {
           UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Gui.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Gui().setVisible(true);
            }
        });
    }
    
    // <editor-fold defaultstate="collapsed" desc=" Declaration of elements gui ">
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btnVai;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel35;
    private javax.swing.JLabel jLabel36;
    private javax.swing.JLabel jLabel37;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel40;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JPanel jpAmbiente;
    private javax.swing.JPanel jpBlue;
    private javax.swing.JPanel jpCamera;
    private javax.swing.JPanel jpCoeficienteReflexao;
    private javax.swing.JPanel jpCorAmbiente;
    private javax.swing.JPanel jpGreen;
    private javax.swing.JPanel jpIluminacao;
    private javax.swing.JPanel jpLuz;
    private javax.swing.JPanel jpPosicaoCamera;
    private javax.swing.JPanel jpPosicaoLuz;
    private javax.swing.JPanel jpRed;
    private javax.swing.JPanel jpRotacao;
    private javax.swing.JPanel jpSuperficie;
    private javax.swing.JPanel jpTamanho;
    private javax.swing.JSpinner jsAltura;
    private javax.swing.JSpinner jsAmbienteBlue;
    private javax.swing.JPanel jsAmbienteCorB;
    private javax.swing.JSpinner jsAmbienteCorBlue;
    private javax.swing.JSpinner jsAmbienteCorGreen;
    private javax.swing.JSpinner jsAmbienteCorRed;
    private javax.swing.JSpinner jsAmbienteGreen;
    private javax.swing.JSpinner jsAmbienteRed;
    private javax.swing.JSpinner jsDifusaoBlue;
    private javax.swing.JSpinner jsDifusaoGreen;
    private javax.swing.JSpinner jsDifusaoRed;
    private javax.swing.JSpinner jsEspecularBlue;
    private javax.swing.JSpinner jsEspecularGreen;
    private javax.swing.JSpinner jsEspecularRed;
    private javax.swing.JSpinner jsFoco;
    private javax.swing.JSpinner jsIluminacaoN;
    private javax.swing.JSpinner jsLargura;
    private javax.swing.JSpinner jsLuzCorB;
    private javax.swing.JSpinner jsLuzCorG;
    private javax.swing.JSpinner jsLuzCorR;
    private javax.swing.JSpinner jsPixelX;
    private javax.swing.JSpinner jsPixelY;
    private javax.swing.JSpinner jsPosicaoCameraX;
    private javax.swing.JSpinner jsPosicaoCameraY;
    private javax.swing.JSpinner jsPosicaoCameraZ;
    private javax.swing.JSpinner jsPosicaoLuzX;
    private javax.swing.JSpinner jsPosicaoLuzY;
    private javax.swing.JSpinner jsPosicaoLuzZ;
    private javax.swing.JSpinner jsRotacaoX;
    private javax.swing.JSpinner jsRotacaoY;
    private javax.swing.JSpinner jsRotacaoZ;
    private javax.swing.JSpinner jsSuperficieA;
    private javax.swing.JSpinner jsSuperficieB;
    private javax.swing.JSpinner jsSuperficieC;
    private javax.swing.JSpinner jsSuperficieD;
    private javax.swing.JSpinner jsSuperficieE;
    private javax.swing.JSpinner jsSuperficieF;
    private javax.swing.JSpinner jsSuperficieG;
    private javax.swing.JSpinner jsSuperficieH;
    private javax.swing.JSpinner jsSuperficieJ;
    private javax.swing.JSpinner jsSuperficieK;
    // End of variables declaration//GEN-END:variables
    // </editor-fold>
}
